package com.demo.core.common.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 类描述:
 * 定义对外传输对象的结构，其他返回对象继承此类
 *
 * @author housy
 * 创建时间: 2021年6月03日 下午4:04:02
 * 版本： V1.0.0
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ResponseBaseEntity<T> {

    private Result result = Result.success();

    private T data;

    /**
     * 成功
     *
     * @param data 消息
     * @param <T>  返回数据类型
     * @return DataResponse
     */
    public static <T> ResponseBaseEntity<T> data(T data) {
        return new ResponseBaseEntity<>(Result.success(), data);
    }

    /**
     * 成功(失败)
     *
     * @param data 消息
     * @param <T>  返回数据类型
     * @return DataResponse
     */
    public static <T> ResponseBaseEntity<T> data(Result result, T data) {
        return new ResponseBaseEntity<>(result, data);
    }

}
